
SUB temporizador()
    'rutina contador de tiempo, utiliza el contador de frames del spectrum para ir decrementando la variable time_left cada segundo (50 frames = 1 segundo)
    IF integerFrameCounter>= 50 then   '50fps, asi que cada 50 es 1 seg
            
            integerFrameCounter= integerFrameCounter - 50
            'pasa 1 segundo
            time_left=time_left-1

    END IF
    
                IF time_left=0 then 
                        
                        endGame=1
                        gameover()
                ELSE 
                        print_timebar()
                END IF


END SUB

SUB reset_vars()
    'resetea variables
    endGame=0
    player_hp=5
    llave=0
    num_pregunta=0
    levelCompleted=0
    
    'reset matrices
    FOR x=0 to 4
        FOR y=0 TO 4 
              map_events(x,y)=0
        NEXT y
     NEXT x  
    
    'valor especial entrada 
    playerFrom=2
    playerDir=0
    
    'Reset del tiempo
    resetTime()
    
END sub
SUB resetTime()
'determina el valor del tiempo segun la dificultad
IF  difficulty=0 then time_total=240
IF  difficulty=1 then time_total=180
IF  difficulty=2 then time_total=120    

   time_left=time_total


END SUB

SUB resetUsedMaps()
'resetea la variable que determina que mapas ya han sudi jugados en ésta partida
FOR x = 0 TO 4
    usedMaps(x)=5
NEXT x

END SUB
SUB choose_map()
        
    DIM checkUsedMaps AS UBYTE 
    
    'selecciona un mapa nuevo que no haya sido usado, mapa al azar
    
    DO 
            checkUsedMaps = 0
            current_map=INT(RND*5)              
            FOR x=0 TO 4
            
                IF usedMaps(x) = current_map then checkUsedMaps=1
            
            NEXT x
    
    LOOP UNTIL  checkUsedMaps = 0
    
    
    'busca entrada. Las entradas valen 16. Y pasa a ser la posicion inicial del jugador pl_x,pl_y
    FOR x=0 to 4
        FOR y=4 TO 0 STEP-1
              IF map_pool(current_map, x, y)=16 then
                    pl_x=x 
                    pl_y=y
              END IF
        NEXT y
     NEXT x      
'añade el mapa usado a la variable usedMaps(4)

    usedMaps(level)= current_map


END SUB
SUB set_map_events()

DIM xpos,ypos,total,j AS UBYTE
DIM chest_time,chest_trap,chest_heal,duel,mapPoolVar AS UBYTE


'LEYENDA: 1= llave,  2=corazon, 3=trampa, 4= tiempo add, 5=batalla

'asignación de cantidad de eventos por tipo
duel=13
chest_time=4
chest_trap=2+difficulty
chest_heal=3-difficulty


'coloca 6 en la entrada y salida (para poder colocar luego libremente el resto)
'busca entrada
    FOR x=0 to 4
        FOR y=4 TO 0 STEP-1
              IF map_pool(current_map, x, y)=16 OR map_pool(current_map, x, y)=17 then map_events(x,y)=6
                    
   
        NEXT y
     NEXT x  
 
 
'coloca la llave
    DO 
            xpos = INT(RND * 5) ' dara 0 a 4
            
            'IF map_events(xpos, ypos)=0 THEN map_events(xpos, ypos)=1
            IF map_events(xpos, 2 )=0 THEN map_events(xpos, 2)=1
    
    'la llave estará en posicion xpos variable pero la Y sera fija en 2
    LOOP UNTIL map_events(xpos, 2)=1
   

 'rellena el los huecos con valores aleatorios de eventos
    FOR x=0 to 4
        FOR y=0 TO 4 
              IF map_events(x, y)=0 then
                    total=duel+chest_time+chest_trap+chest_heal
                    DO
                        j= INT(RND * 4)+ 2
                        IF j = 2 then
                                IF chest_heal>0
                                     map_events(x, y)=2
                                     chest_heal=chest_heal-1
                                END IF
                        END IF
                        IF j = 3 then
                                IF chest_trap>0
                                     map_events(x, y)=3
                                     chest_trap=chest_trap-1
                                END IF
                        END IF      
                        IF j = 4 then
                                IF chest_time>0
                                     map_events(x, y)=4
                                     chest_time=chest_time-1
                                END IF
                        END IF        
                        IF j = 5 then
                                IF duel>0
                                     map_events(x, y)=5
                                     duel=duel-1
                                END IF 
                        END IF     
                   

                   LOOP UNTIL ((duel+chest_time+chest_trap+chest_heal)<>total)


              END IF

        NEXT y
     NEXT x  
     
     

END SUB
SUB check_events()
    '1=llave  2=corazon, 3=trampa, 4= tiempo add, 5=encuentro
    'mira que evento hay al entrar en la sala
    DIM event AS UBYTE
    
    event= map_events(pl_x,pl_y)
    printEvent(event)
    INK 7
    BRIGHT 1
    'coge llave
    IF event=1 then 
        
        llave=1
        PRINT at 21,3;EVENTS_LLAVE;
        playSFX3()

        eraseInput()
        limpia_texto()          
        printLlave()
        
    END IF
    'coge corazon
    IF event=2 then 
        IF player_hp<5 then 
                player_hp=player_hp+1        
        END IF
        PRINT at 21,3;EVENTS_CORAZON;
        show_hp()
        playSFX3()

        limpia_texto()  
        
    END IF
    'coge trampa
    IF event=3 then 
        PRINT at 21,3;EVENTS_TRAMPA;
        IF player_hp>=2 then 
                player_hp=player_hp-1
                show_hp()
                playSFX4()     
                limpia_texto()                 
        ELSE 

                show_hp()
                playSFX4()
                limpia_texto()                  
                gameover()
        END IF

    END IF
    'coge tiempo
    IF event=4 then 

                'time_left se cuenta en segundos, añade 10 segundos
                'NOTA: tope para ubyte es 255
                
        IF time_left<=(time_total-10) then time_left=time_left+10     
   
        PRINT at 21,3;EVENTS_TIEMPO;
        playSFX3()
        limpia_texto() 

    END IF
       
       'encuentro
    IF event=5 then 
        
        PRINT at 21,3;EVENTS_ENCUENTRO;
        playSFX5()
        limpia_texto() 
        engage()

    END IF

    'borra evento , si no es entrada o salida. PAra que no se repita al volver a entrar en la misma sala
    IF event<6 then map_events(pl_x,pl_y)=0
    

END SUB
111  ps
SUB bundlePlayerMove(x as UBYTE)
'repack de comandos repetitivos para ahorrar memoria
          playSFX1()
          reprintSpot() 
          printPlayer(plSubX,plSubY,x) 
END sub
SUB playerMoveR()
'rutina para mover el player hacia la derecha. Tiene condiciones segun si acaba de entrar por la sala desde la izquierda (iqzquierda a derecha) o estaba en el centro y sale por la derecha (centro a derecha)

    wallsMoving= walls(room,3)
    IF playerDir=3
         plSubX=14
         plSubY= 11
    ELSE IF playerFrom=3
         plSubX=8
         plSubY= 8
    END IF    
          
          playSFX1()
          'STEP 0

          IF playerDir=3 then reprintSpot()

          printPlayer(plSubX,plSubY,2)
          IF wallsMoving AND (playerFrom=3) then printDoorD()
        
          
          'STEP 1
          
          playSFX1()        
          reprintSpot()
          plSubX=plSubX+2
          plSubY=plSubY+1
          printPlayer(plSubX,plSubY,0)
          IF wallsMoving AND (playerFrom=3) then printDoorD()
          
          
          bundlePlayerMove(1)
          IF wallsMoving AND (playerFrom=3) then printDoorD()
          
          
          bundlePlayerMove(2)
          IF wallsMoving AND (playerFrom=3) then printDoorD()
         
         'STEP 2
          
          playSFX1()
          reprintSpot()

          plSubX=plSubX+2
          plSubY=plSubY+1
          printPlayer(plSubX,plSubY,0)
          IF wallsMoving AND (playerFrom=3) then printDoorD()     
          IF playerDir=3 then printDoorR()
          
          bundlePlayerMove(1)
          IF playerDir=3 then printDoorR()
          
          
          bundlePlayerMove(2)
          IF playerDir=3 then printDoorR()
          
          'STEP 3
          
          playSFX1()
          reprintSpot()
          plSubX=plSubX+2
          plSubY=plSubY+1
          printPlayer(plSubX,plSubY,0)
          IF playerDir=3 then printDoorR()
                    
          bundlePlayerMove(1)
          IF playerDir=3 then printDoorR()
          
          playSFX1()
          reprintSpot()
          IF playerDir=3 then reprintSpot()          
        
          printPlayer(plSubX,plSubY,2) 
          IF playerDir=3 then printDoorR()


END SUB
SUB playerMoveU()
      
      wallsMoving= walls(room,3)
      
      IF playerDir=2
         plSubX=14
         plSubY= 11
    ELSE IF playerFrom=2
         plSubX=8
         plSubY= 14
    END IF            
          playSFX1()          
          'STEP 0

          IF playerDir=2 then reprintSpot()

          printPlayer(plSubX,plSubY,2)
          IF (playerFrom=2) AND wallsMoving then printDoorD()
          playSFX1()
          'STEP 1
          reprintSpot()
          plSubX=plSubX+2
          plSubY=plSubY-1
          printPlayer(plSubX,plSubY,0)
          IF (playerFrom=2) AND wallsMoving then printDoorD()
          bundlePlayerMove(1)
          IF (playerFrom=2) AND wallsMoving then printDoorD()
          bundlePlayerMove(2)
          IF (playerFrom=2) AND wallsMoving then printDoorD()
       
          'STEP 2
          playSFX1() 
          reprintSpot()
          IF (playerFrom=2) AND wallsMoving then printDoorD()
          plSubX=plSubX+2
          plSubY=plSubY-1
          printPlayer(plSubX,plSubY,0)
          wallsMoving= walls(room,2)
          IF (playerDir=2) AND wallsMoving then printDoorR()
          bundlePlayerMove(1)
          IF (playerDir=2) AND wallsMoving then printDoorR()
          bundlePlayerMove(2)
          IF (playerDir=2) AND wallsMoving then printDoorR()
          
          playSFX1()
          'STEP 3
          reprintSpot()
          plSubX=plSubX+2
          plSubY=plSubY-1
          printPlayer(plSubX,plSubY,0)
          IF (playerDir=2) AND wallsMoving then printDoorR()
          bundlePlayerMove(1)
          IF (playerDir=2) AND wallsMoving then printDoorR()
          bundlePlayerMove(2)
          IF (playerDir=2) AND wallsMoving then printDoorR()
     
END SUB
SUB playerMoveL()
      
      wallsMoving=walls(room,3)
      
      IF playerDir=1
         plSubX=14
         plSubY= 11
    ELSE IF playerFrom=1
         plSubX=20
         plSubY= 14
    END IF 
          playSFX1()
          'STEP 0
    IF playerDir=1 reprintSpot()

          printPlayer(plSubX,plSubY,2)
          IF playerFrom=1 then printDoorR()
          
          'STEP 1
          playSFX1()
          reprintSpot()
          plSubX=plSubX-2
          plSubY=plSubY-1
          printPlayer(plSubX,plSubY,0)
          IF playerFrom=1 then printDoorR()
          
          bundlePlayerMove(1)
          IF playerFrom=1 then printDoorR()
          
          bundlePlayerMove(2)
          IF playerFrom=1 then printDoorR()
         
         'STEP 2
          playSFX1()
          reprintSpot()
          IF playerFrom=1 then printDoorR()
          
          plSubX=plSubX-2
          plSubY=plSubY-1
          printPlayer(plSubX,plSubY,0)
          IF (playerDir=1) AND wallsMoving then printDoorD()

          bundlePlayerMove(1)
          IF (playerDir=1) AND wallsMoving then printDoorD()

          bundlePlayerMove(2)
          IF (playerDir=1) AND wallsMoving then printDoorD()

          'STEP 3
          playSFX1()
          reprintSpot()
          plSubX=plSubX-2
          plSubY=plSubY-1
          printPlayer(plSubX,plSubY,0)
          IF (playerDir=1) AND wallsMoving then printDoorD()
  
          bundlePlayerMove(1)
          IF (playerDir=1) AND wallsMoving then printDoorD()

          bundlePlayerMove(2)
          IF (playerDir=1) AND wallsMoving then printDoorD()
      
END SUB 
SUB playerMoveD()
     
     wallsMoving=walls(room,2)
     
     IF playerDir=4
         plSubX=14
         plSubY= 11
    ELSE IF playerFrom=4
         plSubX=20
         plSubY= 8
    END IF 
          
          playSFX1()
          'STEP 0
          IF playerDir=4   reprintSpot()

          printPlayer(plSubX,plSubY,2)
          IF (playerFrom=4) AND wallsMoving then printDoorR()
          
          'STEP 1
          playSFX1()
    
          
          reprintSpot()
          plSubX=plSubX-2
          plSubY=plSubY+1
          printPlayer(plSubX,plSubY,0)
          IF (playerFrom=4) AND wallsMoving then printDoorR()
          
          bundlePlayerMove(1)
          IF (playerFrom=4) AND wallsMoving then printDoorR() 
          
          bundlePlayerMove(2)
          IF (playerFrom=4) AND wallsMoving then printDoorR()
          
          'STEP 2
          playSFX1()
          reprintSpot()

          plSubX=plSubX-2
          plSubY=plSubY+1
          printPlayer(plSubX,plSubY,0)
          IF (playerFrom=4) AND wallsMoving then printDoorR()          
          wallsMoving=walls(room,3)
          IF (playerDir=4) AND wallsMoving then printDoorD()
          
          bundlePlayerMove(1)
          wallsMoving=walls(room,2)
          IF (playerFrom=4) AND wallsMoving then printDoorR()          
          wallsMoving=walls(room,3)
          IF (playerDir=4) AND wallsMoving then printDoorD()
          
          bundlePlayerMove(2)
          wallsMoving=walls(room,2)
          IF (playerFrom=4) AND wallsMoving then printDoorR()          
          wallsMoving=walls(room,3)
          IF (playerDir=4) AND wallsMoving then printDoorD()
          
          'STEP 3
          
          playSFX1()
          reprintSpot()
          plSubX=plSubX-2
          plSubY=plSubY+1
          printPlayer(plSubX,plSubY,0)
          IF (playerDir=4) AND wallsMoving then printDoorD()
          
          bundlePlayerMove(1)
          IF (playerDir=4) AND wallsMoving then printDoorD()
          
          bundlePlayerMove(2)
          IF (playerDir=4) AND wallsMoving then printDoorD()
    
END SUB
SUB enterPlayer()
'entrada del player a la sala
IF playerFrom=1 
        playerMoveL()
ELSE IF playerFrom=2
        playerMoveU()
ELSE IF playerFrom=3
        playerMoveR()
ELSE IF playerFrom=4
        playerMoveD()
ELSE
        printPlayer(14,11,0)
        
END IF
'para cuando vuelve de otra escena
playerFrom=0

END SUB
SUB shuffle_preguntas()

 DIM i,j,temp AS UBYTE
 
 'rellena de 1 a 13
 for i=0 TO 12
        preguntas_barajadas(i)=i
 NEXT i
 'mezcla con metodo fisher-yates
 for i=12 TO 1 STEP -1
        j=INT(RND*(i))
        temp=preguntas_barajadas(i)
        preguntas_barajadas(i)=preguntas_barajadas(j)
        preguntas_barajadas(j)=temp
 NEXT i
 

 END SUB
SUB checkRespuesta()
'comprueba la respuesta introducida por el jugador con la respuesta real (una vez barajada)
 waitNoKey()
 limpia_texto()
 INK 7
 bright 0
 
 
 IF respuesta=respuestas(preguntas_barajadas(num_pregunta)) then
        PRINT at 21,9; HUD_CORRECT
        score=score+100
     
 ELSE
        PRINT at 21,9; HUD_WRONG

        player_hp=player_hp-1
        IF player_hp>0 then show_hp()      

      
 END IF
  waitNoKey()
  PAUSE 0
  PAUSE 0
  limpia_texto()


 END SUB
SUB engage()
'evento combate quiz con el duende

WipeScreen()

printBoss()
show_hud()

'altera el orden de las respuestas para añadir dificultad
respuestaRandom = INT(RND * 3)


showPregunta()


        input_engageJoystick()


'borra evento (de engage) mientras no sea entrada o salida
IF map_events(pl_x,pl_y)<6 then map_events(pl_x,pl_y)=0

num_pregunta=num_pregunta+1

IF player_hp=0 then 
        gameover()
ELSE
        IF time_left<> 0
               
               
                roomBundle()
        END IF

END IF

END SUB
SUB nextLevel()
        'rutina antes de iniciar cualquier nivel
        CLS
        level=level+1
        reset_vars()
        choose_map()      
        shuffle_preguntas()     
        set_map_events()     
        showNextLevel() 
        'inicializa el contador de tiempo a 0 antes de comenzar el nivel
        integerFrameCounter=0
        
        
END SUB

SUB roomBundle()
    'repack de rutinas repetitivas
    printRoom()
     IF map_events(pl_x,pl_y)<6 AND map_events(pl_x,pl_y)>0
            printChest(16,12)
     END If
    show_hud()
    printLevel()
    printScore() 
    enterPlayer()
END SUB
SUB showPregunta()
  'enseña la pregunta junto con las respuestas
 DIM textoPregunta,textoRespuestaA,textoRespuestaB,textoRespuestaC AS STRING
 DIM nextPregunta AS UBYTE
 DIM ajusteA,ajusteB,ajusteC AS BYTE


 INK 7
 BRIGHT 0
 'enseña la pregunta correspondiente a la matriz preguntas barajadas con indice del orden original de las preguntas
 nextPregunta= preguntas_barajadas(num_pregunta)
 
 'textos mediante constantes de cada pregunta y respuesta
 IF level=0
        
        IF nextPregunta=0
        
              textoPregunta= LEVEL_0_QUESTION_0
              textoRespuestaA = LEVEL_0_QUESTION_0_ANSWER_A
              textoRespuestaB = LEVEL_0_QUESTION_0_ANSWER_B        
              textoRespuestaC = LEVEL_0_QUESTION_0_ANSWER_C    
              
        END IF
        
        IF nextPregunta=1
                
              textoPregunta= LEVEL_0_QUESTION_1
              textoRespuestaA = LEVEL_0_QUESTION_1_ANSWER_A
              textoRespuestaB = LEVEL_0_QUESTION_1_ANSWER_B        
              textoRespuestaC = LEVEL_0_QUESTION_1_ANSWER_C   
              
        END IF 
        
        IF nextPregunta=2
                
              textoPregunta= LEVEL_0_QUESTION_2
              textoRespuestaA = LEVEL_0_QUESTION_2_ANSWER_A
              textoRespuestaB = LEVEL_0_QUESTION_2_ANSWER_B        
              textoRespuestaC = LEVEL_0_QUESTION_2_ANSWER_C                 
        
        END IF 
        
        IF nextPregunta=3
                
              textoPregunta= LEVEL_0_QUESTION_3
              textoRespuestaA = LEVEL_0_QUESTION_3_ANSWER_A
              textoRespuestaB = LEVEL_0_QUESTION_3_ANSWER_B        
              textoRespuestaC = LEVEL_0_QUESTION_3_ANSWER_C   
         
         END IF 
         
         IF nextPregunta=4
                
              textoPregunta= LEVEL_0_QUESTION_4
              textoRespuestaA = LEVEL_0_QUESTION_4_ANSWER_A
              textoRespuestaB = LEVEL_0_QUESTION_4_ANSWER_B        
              textoRespuestaC = LEVEL_0_QUESTION_4_ANSWER_C 
         
         END IF 
         
         IF nextPregunta=5
                
              textoPregunta= LEVEL_0_QUESTION_5
              textoRespuestaA = LEVEL_0_QUESTION_5_ANSWER_A
              textoRespuestaB = LEVEL_0_QUESTION_5_ANSWER_B        
              textoRespuestaC = LEVEL_0_QUESTION_5_ANSWER_C 
         
         END IF 
         
         IF nextPregunta=6
                
              textoPregunta= LEVEL_0_QUESTION_6
              textoRespuestaA = LEVEL_0_QUESTION_6_ANSWER_A
              textoRespuestaB = LEVEL_0_QUESTION_6_ANSWER_B        
              textoRespuestaC = LEVEL_0_QUESTION_6_ANSWER_C 
         
         END IF 
         
         IF nextPregunta=7
                
              textoPregunta= LEVEL_0_QUESTION_7
              textoRespuestaA = LEVEL_0_QUESTION_7_ANSWER_A
              textoRespuestaB = LEVEL_0_QUESTION_7_ANSWER_B        
              textoRespuestaC = LEVEL_0_QUESTION_7_ANSWER_C 
         
         END IF 
         
         IF nextPregunta=8
                
              textoPregunta= LEVEL_0_QUESTION_8
              textoRespuestaA = LEVEL_0_QUESTION_8_ANSWER_A
              textoRespuestaB = LEVEL_0_QUESTION_8_ANSWER_B        
              textoRespuestaC = LEVEL_0_QUESTION_8_ANSWER_C 
          
         END IF 
         
         IF nextPregunta=9
                
              textoPregunta= LEVEL_0_QUESTION_9
              textoRespuestaA = LEVEL_0_QUESTION_9_ANSWER_A
              textoRespuestaB = LEVEL_0_QUESTION_9_ANSWER_B        
              textoRespuestaC = LEVEL_0_QUESTION_9_ANSWER_C 
         
         END IF 
         
         IF nextPregunta=10
                
              textoPregunta= LEVEL_0_QUESTION_10
              textoRespuestaA = LEVEL_0_QUESTION_10_ANSWER_A
              textoRespuestaB = LEVEL_0_QUESTION_10_ANSWER_B        
              textoRespuestaC = LEVEL_0_QUESTION_10_ANSWER_C 
                                                                                                       
         END IF
         
         IF nextPregunta=11
                
              textoPregunta= LEVEL_0_QUESTION_11
              textoRespuestaA = LEVEL_0_QUESTION_11_ANSWER_A
              textoRespuestaB = LEVEL_0_QUESTION_11_ANSWER_B        
              textoRespuestaC = LEVEL_0_QUESTION_11_ANSWER_C 
                                                                                                       
         END IF 
         
         IF nextPregunta=12
                
              textoPregunta= LEVEL_0_QUESTION_12
              textoRespuestaA = LEVEL_0_QUESTION_12_ANSWER_A
              textoRespuestaB = LEVEL_0_QUESTION_12_ANSWER_B        
              textoRespuestaC = LEVEL_0_QUESTION_12_ANSWER_C 
                                                                                                       
        END IF
 
 END IF
 
 IF level=1
        
        IF nextPregunta=0
        
              textoPregunta= LEVEL_1_QUESTION_0
              textoRespuestaA = LEVEL_1_QUESTION_0_ANSWER_A
              textoRespuestaB = LEVEL_1_QUESTION_0_ANSWER_B        
              textoRespuestaC = LEVEL_1_QUESTION_0_ANSWER_C    
              
        END IF
        
        IF nextPregunta=1
                
              textoPregunta= LEVEL_1_QUESTION_1
              textoRespuestaA = LEVEL_1_QUESTION_1_ANSWER_A
              textoRespuestaB = LEVEL_1_QUESTION_1_ANSWER_B        
              textoRespuestaC = LEVEL_1_QUESTION_1_ANSWER_C   
              
        END IF 
        
        IF nextPregunta=2
                
              textoPregunta= LEVEL_1_QUESTION_2
              textoRespuestaA = LEVEL_1_QUESTION_2_ANSWER_A
              textoRespuestaB = LEVEL_1_QUESTION_2_ANSWER_B        
              textoRespuestaC = LEVEL_1_QUESTION_2_ANSWER_C                 
        
        END IF 
        
        IF nextPregunta=3
                
              textoPregunta= LEVEL_1_QUESTION_3
              textoRespuestaA = LEVEL_1_QUESTION_3_ANSWER_A
              textoRespuestaB = LEVEL_1_QUESTION_3_ANSWER_B        
              textoRespuestaC = LEVEL_1_QUESTION_3_ANSWER_C   
         
         END IF 
         
         IF nextPregunta=4
                
              textoPregunta= LEVEL_1_QUESTION_4
              textoRespuestaA = LEVEL_1_QUESTION_4_ANSWER_A
              textoRespuestaB = LEVEL_1_QUESTION_4_ANSWER_B        
              textoRespuestaC = LEVEL_1_QUESTION_4_ANSWER_C 
         
         END IF 
         
         IF nextPregunta=5
                
              textoPregunta= LEVEL_1_QUESTION_5
              textoRespuestaA = LEVEL_1_QUESTION_5_ANSWER_A
              textoRespuestaB = LEVEL_1_QUESTION_5_ANSWER_B        
              textoRespuestaC = LEVEL_1_QUESTION_5_ANSWER_C 
         
         END IF 
         
         IF nextPregunta=6
                
              textoPregunta= LEVEL_1_QUESTION_6
              textoRespuestaA = LEVEL_1_QUESTION_6_ANSWER_A
              textoRespuestaB = LEVEL_1_QUESTION_6_ANSWER_B        
              textoRespuestaC = LEVEL_1_QUESTION_6_ANSWER_C 
         
         END IF 
         
         IF nextPregunta=7
                
              textoPregunta= LEVEL_1_QUESTION_7
              textoRespuestaA = LEVEL_1_QUESTION_7_ANSWER_A
              textoRespuestaB = LEVEL_1_QUESTION_7_ANSWER_B        
              textoRespuestaC = LEVEL_1_QUESTION_7_ANSWER_C 
         
         END IF 
         
         IF nextPregunta=8
                
              textoPregunta= LEVEL_1_QUESTION_8
              textoRespuestaA = LEVEL_1_QUESTION_8_ANSWER_A
              textoRespuestaB = LEVEL_1_QUESTION_8_ANSWER_B        
              textoRespuestaC = LEVEL_1_QUESTION_8_ANSWER_C 
          
         END IF 
         
         IF nextPregunta=9
                
              textoPregunta= LEVEL_1_QUESTION_9
              textoRespuestaA = LEVEL_1_QUESTION_9_ANSWER_A
              textoRespuestaB = LEVEL_1_QUESTION_9_ANSWER_B        
              textoRespuestaC = LEVEL_1_QUESTION_9_ANSWER_C 
         
         END IF 
         
         IF nextPregunta=10
                
              textoPregunta= LEVEL_1_QUESTION_10
              textoRespuestaA = LEVEL_1_QUESTION_10_ANSWER_A
              textoRespuestaB = LEVEL_1_QUESTION_10_ANSWER_B        
              textoRespuestaC = LEVEL_1_QUESTION_10_ANSWER_C 
                                                                                                       
         END IF
         
         IF nextPregunta=11
                
              textoPregunta= LEVEL_1_QUESTION_11
              textoRespuestaA = LEVEL_1_QUESTION_11_ANSWER_A
              textoRespuestaB = LEVEL_1_QUESTION_11_ANSWER_B        
              textoRespuestaC = LEVEL_1_QUESTION_11_ANSWER_C 
                                                                                                       
         END IF 
         
         IF nextPregunta=12
                
              textoPregunta= LEVEL_1_QUESTION_12
              textoRespuestaA = LEVEL_1_QUESTION_12_ANSWER_A
              textoRespuestaB = LEVEL_1_QUESTION_12_ANSWER_B        
              textoRespuestaC = LEVEL_1_QUESTION_12_ANSWER_C 
                                                                                                       
        END IF
 END IF
  
 IF level=2
        
        IF nextPregunta=0
        
              textoPregunta= LEVEL_2_QUESTION_0
              textoRespuestaA = LEVEL_2_QUESTION_0_ANSWER_A
              textoRespuestaB = LEVEL_2_QUESTION_0_ANSWER_B        
              textoRespuestaC = LEVEL_2_QUESTION_0_ANSWER_C    
              
        END IF
        
        IF nextPregunta=1
                
              textoPregunta= LEVEL_2_QUESTION_1
              textoRespuestaA = LEVEL_2_QUESTION_1_ANSWER_A
              textoRespuestaB = LEVEL_2_QUESTION_1_ANSWER_B        
              textoRespuestaC = LEVEL_2_QUESTION_1_ANSWER_C   
              
        END IF 
        
        IF nextPregunta=2
                
              textoPregunta= LEVEL_2_QUESTION_2
              textoRespuestaA = LEVEL_2_QUESTION_2_ANSWER_A
              textoRespuestaB = LEVEL_2_QUESTION_2_ANSWER_B        
              textoRespuestaC = LEVEL_2_QUESTION_2_ANSWER_C                 
        
        END IF 
        
        IF nextPregunta=3
                
              textoPregunta= LEVEL_2_QUESTION_3
              textoRespuestaA = LEVEL_2_QUESTION_3_ANSWER_A
              textoRespuestaB = LEVEL_2_QUESTION_3_ANSWER_B        
              textoRespuestaC = LEVEL_2_QUESTION_3_ANSWER_C   
         
         END IF 
         
         IF nextPregunta=4
                
              textoPregunta= LEVEL_2_QUESTION_4
              textoRespuestaA = LEVEL_2_QUESTION_4_ANSWER_A
              textoRespuestaB = LEVEL_2_QUESTION_4_ANSWER_B        
              textoRespuestaC = LEVEL_2_QUESTION_4_ANSWER_C 
         
         END IF 
         
         IF nextPregunta=5
                
              textoPregunta= LEVEL_2_QUESTION_5
              textoRespuestaA = LEVEL_2_QUESTION_5_ANSWER_A
              textoRespuestaB = LEVEL_2_QUESTION_5_ANSWER_B        
              textoRespuestaC = LEVEL_2_QUESTION_5_ANSWER_C 
         
         END IF 
         
         IF nextPregunta=6
                
              textoPregunta= LEVEL_2_QUESTION_6
              textoRespuestaA = LEVEL_2_QUESTION_6_ANSWER_A
              textoRespuestaB = LEVEL_2_QUESTION_6_ANSWER_B        
              textoRespuestaC = LEVEL_2_QUESTION_6_ANSWER_C 
         
         END IF 
         
         IF nextPregunta=7
                
              textoPregunta= LEVEL_2_QUESTION_7
              textoRespuestaA = LEVEL_2_QUESTION_7_ANSWER_A
              textoRespuestaB = LEVEL_2_QUESTION_7_ANSWER_B        
              textoRespuestaC = LEVEL_2_QUESTION_7_ANSWER_C 
         
         END IF 
         
         IF nextPregunta=8
                
              textoPregunta= LEVEL_2_QUESTION_8
              textoRespuestaA = LEVEL_2_QUESTION_8_ANSWER_A
              textoRespuestaB = LEVEL_2_QUESTION_8_ANSWER_B        
              textoRespuestaC = LEVEL_2_QUESTION_8_ANSWER_C 
          
         END IF 
         
         IF nextPregunta=9
                
              textoPregunta= LEVEL_2_QUESTION_9
              textoRespuestaA = LEVEL_2_QUESTION_9_ANSWER_A
              textoRespuestaB = LEVEL_2_QUESTION_9_ANSWER_B        
              textoRespuestaC = LEVEL_2_QUESTION_9_ANSWER_C 
         
         END IF 
         
         IF nextPregunta=10
                
              textoPregunta= LEVEL_2_QUESTION_10
              textoRespuestaA = LEVEL_2_QUESTION_10_ANSWER_A
              textoRespuestaB = LEVEL_2_QUESTION_10_ANSWER_B        
              textoRespuestaC = LEVEL_2_QUESTION_10_ANSWER_C 
                                                                                                       
         END IF
         
         IF nextPregunta=11
                
              textoPregunta= LEVEL_2_QUESTION_11
              textoRespuestaA = LEVEL_2_QUESTION_11_ANSWER_A
              textoRespuestaB = LEVEL_2_QUESTION_11_ANSWER_B        
              textoRespuestaC = LEVEL_2_QUESTION_11_ANSWER_C 
                                                                                                       
         END IF 
         
         IF nextPregunta=12
                
              textoPregunta= LEVEL_2_QUESTION_12
              textoRespuestaA = LEVEL_2_QUESTION_12_ANSWER_A
              textoRespuestaB = LEVEL_2_QUESTION_12_ANSWER_B        
              textoRespuestaC = LEVEL_2_QUESTION_12_ANSWER_C 
                                                                                                       
        END IF 
 
 END IF

IF level=3
        
        IF nextPregunta=0
        
              textoPregunta= LEVEL_3_QUESTION_0
              textoRespuestaA = LEVEL_3_QUESTION_0_ANSWER_A
              textoRespuestaB = LEVEL_3_QUESTION_0_ANSWER_B        
              textoRespuestaC = LEVEL_3_QUESTION_0_ANSWER_C    
              
        END IF
        
        IF nextPregunta=1
                
              textoPregunta= LEVEL_3_QUESTION_1
              textoRespuestaA = LEVEL_3_QUESTION_1_ANSWER_A
              textoRespuestaB = LEVEL_3_QUESTION_1_ANSWER_B        
              textoRespuestaC = LEVEL_3_QUESTION_1_ANSWER_C   
              
        END IF 
        
        IF nextPregunta=2
                
              textoPregunta= LEVEL_3_QUESTION_2
              textoRespuestaA = LEVEL_3_QUESTION_2_ANSWER_A
              textoRespuestaB = LEVEL_3_QUESTION_2_ANSWER_B        
              textoRespuestaC = LEVEL_3_QUESTION_2_ANSWER_C                 
        
        END IF 
        
        IF nextPregunta=3
                
              textoPregunta= LEVEL_3_QUESTION_3
              textoRespuestaA = LEVEL_3_QUESTION_3_ANSWER_A
              textoRespuestaB = LEVEL_3_QUESTION_3_ANSWER_B        
              textoRespuestaC = LEVEL_3_QUESTION_3_ANSWER_C   
         
         END IF 
         
         IF nextPregunta=4
                
              textoPregunta= LEVEL_3_QUESTION_4
              textoRespuestaA = LEVEL_3_QUESTION_4_ANSWER_A
              textoRespuestaB = LEVEL_3_QUESTION_4_ANSWER_B        
              textoRespuestaC = LEVEL_3_QUESTION_4_ANSWER_C 
         
         END IF 
         
         IF nextPregunta=5
                
              textoPregunta= LEVEL_3_QUESTION_5
              textoRespuestaA = LEVEL_3_QUESTION_5_ANSWER_A
              textoRespuestaB = LEVEL_3_QUESTION_5_ANSWER_B        
              textoRespuestaC = LEVEL_3_QUESTION_5_ANSWER_C 
         
         END IF 
         
         IF nextPregunta=6
                
              textoPregunta= LEVEL_3_QUESTION_6
              textoRespuestaA = LEVEL_3_QUESTION_6_ANSWER_A
              textoRespuestaB = LEVEL_3_QUESTION_6_ANSWER_B        
              textoRespuestaC = LEVEL_3_QUESTION_6_ANSWER_C 
         
         END IF 
         
         IF nextPregunta=7
                
              textoPregunta= LEVEL_3_QUESTION_7
              textoRespuestaA = LEVEL_3_QUESTION_7_ANSWER_A
              textoRespuestaB = LEVEL_3_QUESTION_7_ANSWER_B        
              textoRespuestaC = LEVEL_3_QUESTION_7_ANSWER_C 
         
         END IF 
         
         IF nextPregunta=8
                
              textoPregunta= LEVEL_3_QUESTION_8
              textoRespuestaA = LEVEL_3_QUESTION_8_ANSWER_A
              textoRespuestaB = LEVEL_3_QUESTION_8_ANSWER_B        
              textoRespuestaC = LEVEL_3_QUESTION_8_ANSWER_C 
          
         END IF 
         
         IF nextPregunta=9
                
              textoPregunta= LEVEL_3_QUESTION_9
              textoRespuestaA = LEVEL_3_QUESTION_9_ANSWER_A
              textoRespuestaB = LEVEL_3_QUESTION_9_ANSWER_B        
              textoRespuestaC = LEVEL_3_QUESTION_9_ANSWER_C 
         
         END IF 
         
         IF nextPregunta=10
                
              textoPregunta= LEVEL_3_QUESTION_10
              textoRespuestaA = LEVEL_3_QUESTION_10_ANSWER_A
              textoRespuestaB = LEVEL_3_QUESTION_10_ANSWER_B        
              textoRespuestaC = LEVEL_3_QUESTION_10_ANSWER_C 
                                                                                                       
         END IF
         
         IF nextPregunta=11
                
              textoPregunta= LEVEL_3_QUESTION_11
              textoRespuestaA = LEVEL_3_QUESTION_11_ANSWER_A
              textoRespuestaB = LEVEL_3_QUESTION_11_ANSWER_B        
              textoRespuestaC = LEVEL_3_QUESTION_11_ANSWER_C 
                                                                                                       
         END IF 
         
         IF nextPregunta=12
                
              textoPregunta= LEVEL_3_QUESTION_12
              textoRespuestaA = LEVEL_3_QUESTION_12_ANSWER_A
              textoRespuestaB = LEVEL_3_QUESTION_12_ANSWER_B        
              textoRespuestaC = LEVEL_3_QUESTION_12_ANSWER_C 
                                                                                                       
        END IF
 
 END IF
 
 IF level=4
        
        IF nextPregunta=0
        
              textoPregunta= LEVEL_4_QUESTION_0
              textoRespuestaA = LEVEL_4_QUESTION_0_ANSWER_A
              textoRespuestaB = LEVEL_4_QUESTION_0_ANSWER_B        
              textoRespuestaC = LEVEL_4_QUESTION_0_ANSWER_C    
              
        END IF
        
        IF nextPregunta=1
                
              textoPregunta= LEVEL_4_QUESTION_1
              textoRespuestaA = LEVEL_4_QUESTION_1_ANSWER_A
              textoRespuestaB = LEVEL_4_QUESTION_1_ANSWER_B        
              textoRespuestaC = LEVEL_4_QUESTION_1_ANSWER_C   
              
        END IF 
        
        IF nextPregunta=2
                
              textoPregunta= LEVEL_4_QUESTION_2
              textoRespuestaA = LEVEL_4_QUESTION_2_ANSWER_A
              textoRespuestaB = LEVEL_4_QUESTION_2_ANSWER_B        
              textoRespuestaC = LEVEL_4_QUESTION_2_ANSWER_C                 
        
        END IF 
        
        IF nextPregunta=3
                
              textoPregunta= LEVEL_4_QUESTION_3
              textoRespuestaA = LEVEL_4_QUESTION_3_ANSWER_A
              textoRespuestaB = LEVEL_4_QUESTION_3_ANSWER_B        
              textoRespuestaC = LEVEL_4_QUESTION_3_ANSWER_C   
         
         END IF 
         
         IF nextPregunta=4
                
              textoPregunta= LEVEL_4_QUESTION_4
              textoRespuestaA = LEVEL_4_QUESTION_4_ANSWER_A
              textoRespuestaB = LEVEL_4_QUESTION_4_ANSWER_B        
              textoRespuestaC = LEVEL_4_QUESTION_4_ANSWER_C 
         
         END IF 
         
         IF nextPregunta=5
                
              textoPregunta= LEVEL_4_QUESTION_5
              textoRespuestaA = LEVEL_4_QUESTION_5_ANSWER_A
              textoRespuestaB = LEVEL_4_QUESTION_5_ANSWER_B        
              textoRespuestaC = LEVEL_4_QUESTION_5_ANSWER_C 
         
         END IF 
         
         IF nextPregunta=6
                
              textoPregunta= LEVEL_4_QUESTION_6
              textoRespuestaA = LEVEL_4_QUESTION_6_ANSWER_A
              textoRespuestaB = LEVEL_4_QUESTION_6_ANSWER_B        
              textoRespuestaC = LEVEL_4_QUESTION_6_ANSWER_C 
         
         END IF 
         
         IF nextPregunta=7
                
              textoPregunta= LEVEL_4_QUESTION_7
              textoRespuestaA = LEVEL_4_QUESTION_7_ANSWER_A
              textoRespuestaB = LEVEL_4_QUESTION_7_ANSWER_B        
              textoRespuestaC = LEVEL_4_QUESTION_7_ANSWER_C 
         
         END IF 
         
         IF nextPregunta=8
                
              textoPregunta= LEVEL_4_QUESTION_8
              textoRespuestaA = LEVEL_4_QUESTION_8_ANSWER_A
              textoRespuestaB = LEVEL_4_QUESTION_8_ANSWER_B        
              textoRespuestaC = LEVEL_4_QUESTION_8_ANSWER_C 
          
         END IF 
         
         IF nextPregunta=9
                
              textoPregunta= LEVEL_4_QUESTION_9
              textoRespuestaA = LEVEL_4_QUESTION_9_ANSWER_A
              textoRespuestaB = LEVEL_4_QUESTION_9_ANSWER_B        
              textoRespuestaC = LEVEL_4_QUESTION_9_ANSWER_C 
         
         END IF 
         
         IF nextPregunta=10
                
              textoPregunta= LEVEL_4_QUESTION_10
              textoRespuestaA = LEVEL_4_QUESTION_10_ANSWER_A
              textoRespuestaB = LEVEL_4_QUESTION_10_ANSWER_B        
              textoRespuestaC = LEVEL_4_QUESTION_10_ANSWER_C 
                                                                                                       
         END IF
         
         IF nextPregunta=11
                
              textoPregunta= LEVEL_4_QUESTION_11
              textoRespuestaA = LEVEL_4_QUESTION_11_ANSWER_A
              textoRespuestaB = LEVEL_4_QUESTION_11_ANSWER_B        
              textoRespuestaC = LEVEL_4_QUESTION_11_ANSWER_C 
                                                                                                       
         END IF 
         
         IF nextPregunta=12
                
              textoPregunta= LEVEL_4_QUESTION_12
              textoRespuestaA = LEVEL_4_QUESTION_12_ANSWER_A
              textoRespuestaB = LEVEL_4_QUESTION_12_ANSWER_B        
              textoRespuestaC = LEVEL_4_QUESTION_12_ANSWER_C 
                                                                                                       
        END IF
 
 END IF
 
 printTextXY(textoPregunta,1,1)
 
 IF respuestaRandom=1 then 
        ajusteA=ajusteA+2
        ajusteB=ajusteB-1
        ajusteC=ajusteC-1
 
 END IF
 
  IF respuestaRandom=2 then 
        ajusteA=ajusteA+1
        ajusteB=ajusteB+1
        ajusteC=ajusteC-2
 
 END IF
 
 PRINT at 20+ajusteA,4;textoRespuestaA
 
 PRINT at 21+ajusteB,4;textoRespuestaB
 
 PRINT at 22+ajusteC,4;textoRespuestaC
 
 
END SUB
sub resaltar_opcion(respuesta as ubyte)
    const ATTR_ADDR AS UINTEGER = 22528      ' Dirección base de atributos
    const PAPER_ORIG AS UBYTE = 0         ' Fondo original (negro)
    const INK_ORIG AS UBYTE= 7           ' Texto original (blanco)
    const PAPER_ALT AS UBYTE = 2          ' Fondo resaltado (rojo)
    const INK_ALT AS UBYTE= 0            ' Texto resaltado (negro)

    dim attrOriginal as ubyte
    dim attrResaltado as ubyte
    let attrOriginal = (PAPER_ORIG << 3) + INK_ORIG
    let attrResaltado = 64 + (PAPER_ALT << 3) + INK_ALT   ' BRIGHT + colores

    dim y as ubyte
    y = 19 + respuesta

    ' Cambiar color a resaltado
    for x = 4 to 29
        poke ATTR_ADDR + (CAST(uinteger, y) * 32) + x, attrResaltado
    next x

    ' Pausa 
   
    playSFX0()
    ' Restaurar color original
    for x = 4 to 29
        poke ATTR_ADDR +(CAST(uinteger, y) * 32)+ x, attrOriginal
    next x
end sub
